home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_oth / m2cmp20 / termbase.def < prev    next >
Text File  |  1988-11-19  |  2KB  |  84 lines

  1. DEFINITION MODULE TermBase;
  2.  
  3. (* (C) Copyright 1987,1988 Fitted Software Tools. All rights reserved. *)
  4.  
  5. (*
  6.     The module Terminal does all of its work thru the procedures
  7.     KeyPressed, Read, Write and Goto in this module.
  8.  
  9.     The behaviour of these procedures can be modified by assigning
  10.     new procedures to do the work using AssignRead, AssignWrite and
  11.     AssignGoto.
  12. *)
  13.  
  14. TYPE
  15.     StatusProcedure = PROCEDURE() :BOOLEAN;
  16.     ReadProcedure   = PROCEDURE( VAR CHAR );
  17.     WriteProcedure  = PROCEDURE( CHAR );
  18.     GotoProcedure   = PROCEDURE( CARDINAL, CARDINAL );
  19.  
  20.  
  21. PROCEDURE AssignRead( rp :ReadProcedure; sp :StatusProcedure;
  22.                       VAR done :BOOLEAN );
  23. (*
  24.     save the current Read and KeyPressed procedures in a stack and
  25.     install the new procedures to be used in their place
  26. *)
  27.  
  28. PROCEDURE AssignWrite( wp :WriteProcedure;
  29.                        VAR done :BOOLEAN );
  30. (*
  31.     save the current Write procedure in a stack and install
  32.     the new procedure to be used in its place
  33. *)
  34.  
  35. PROCEDURE AssignGoto( gp :GotoProcedure; VAR done :BOOLEAN );
  36. (*
  37.     save the current Goto procedure in a stack and install
  38.     the new procedure to be used in its place
  39. *)
  40.  
  41. PROCEDURE UnAssignRead( VAR done :BOOLEAN );
  42. (*
  43.     pop the Read and KeyPressed procedures saved by InstallRead off
  44.     the stack and make them active again.
  45. *)
  46.  
  47. PROCEDURE UnAssignWrite( VAR done :BOOLEAN );
  48. (*
  49.     pop the Write procedure saved by InstallWrite off the stack and
  50.     make it active again.
  51. *)
  52.  
  53. PROCEDURE UnAssignGoto( VAR done :BOOLEAN );
  54. (*
  55.     pop the Goto procedure saved by InstallGoto off the stack and
  56.     make it active again.
  57. *)
  58.  
  59. PROCEDURE KeyPressed() :BOOLEAN;
  60. (*
  61.     invokes the currently installed KeyPressed procedure.
  62.     During TermBase initialization, TermIO.KeyPressed is installed.
  63. *)
  64.  
  65. PROCEDURE Read( VAR ch :CHAR );
  66. (*
  67.     invokes the currently installed Read procedure.
  68.     During TermBase initialization, TermIO.Read is installed.
  69. *)
  70.  
  71. PROCEDURE Write( ch :CHAR );
  72. (*
  73.     invokes the currently installed Write procedure.
  74.     During TermBase initialization, TermIO.Write is installed.
  75. *)
  76.  
  77. PROCEDURE Goto( line, pos :CARDINAL );
  78. (*
  79.     invokes the currently installed Goto procedure.
  80.     During TermBase initialization, TermIO.Goto is installed.
  81. *)
  82.  
  83.  
  84. END TermBase.